CBWIRE, our ColdBox module that makes building reactive, modern CFML apps delightfully easy, just dropped its 2.1 release. This release contains mostly bug fixes and also the ability to create your UI templates directly within your CBWIRE component using the onRender() method.
We've added an example of using onRender() to our ever growing CBWIRE-Examples Repo that you can run on your machine locally. https://github.com/grantcopley/cbwire-examples
The complete documentation for CBWIRE is available at https://cbwire.ortusbooks.com/.
onRender
Instead of creating a .cfm template, you can define an onRender() method on your component. This method accepts an args argument where data properties and rendered computed properties are passed in.
component extends="cbwire.models.Component" {
// Data properties
data = {
"firstname": "Grant",
"lastname": "Copley"
};
// Computed Properties
computed = {
"fullName": function( data ) {
return data.firstname & " " & data.lastname;
}
}
function onRender( args ) {
// 'args' contains our rendered data and computed properties
return "
<div>
<h1>Welcome #args.fullName#</h1>
<h2>Your first name is #args.firstname#</h2>
</div>
";
}
}
Enhancements
CBWIRE-111 Ability to output component template direct from onRender() method instead of defining a .cfm tempale in views/wires.
Bugs
CBWIRE-119 Computed properties that do not return a value result in error 'variable [VALUE] doesn't exist'
CBWIRE-118 Nested components are causing the template rendering to only render the last nested template
CBWIRE-117 Struct values are not being passed to template and are instead being replaced with an empty string
CBWIRE-116 CBWIRE doesn't work when ColdBox app is in a subdirectory
CBWIRE-115 Getting errors when rendering component templates in latest version of ColdBox
CBWIRE-96 Nested components are not rendering
Add Your Comment